//
//  StatusPictureView.swift
//  上海微博
//
//  Created by co on 16/3/4.
//  Copyright © 2016年 王南侠. All rights reserved.
//

import UIKit

/// 微博配图视图
class StatusPictureView: UIView {
    
    /// 配图视图数组
    var pic_urls: [StatusPictures]? {
        // 重写 set 方法
        didSet {
            // 1.隐藏索引的图像视图
            for v in subviews {
                v.hidden = true
            }
        
            // 遍历数组，依次设置图像
            var index = 0
            for url in (pic_urls ?? []) {
                
                // 根据遍历的 ‘索引’获取到图像视图
                let iv = subviews[index++] as! UIImageView
                
                // 2.设置图像
                iv.cz_setImageWithURL(url.thumbnail_pic, placeholderName: nil)
                
                // 3.显示图像
                iv.hidden = false
                
                // 4.处理四张图像
                if index == 2 && pic_urls?.count == 4{
                    
                    index++
                }
            }

        }
        
    }
    
    /// 更新图像尺寸
    func updateImageSize(size: CGSize){
        
        let iv = subviews[0]
        
        // 1.如果是单张图片，需要把 第 0 UIImageView 大小调整
        if pic_urls?.count == 1 {
            iv.frame = CGRect(origin: CGPointZero, size: size)
            return
        }
        
        // 2.如果不是单张图像， 恢复 第 0 UIImageView 的大小
        iv.frame = CGRect(origin: CGPointZero, size: CZStatusCellLayout.pictureSize)
    }
    
    
    // MARK : - 构造函数
    override init(frame: CGRect) {
        super.init(frame: frame)
        
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

}

// MARK: - 设置界面
extension StatusPictureView {
    
    private func setupUI() {
        
        
        // 设置背景颜色
        backgroundColor = UIColor.redColor()
        // 超出视图范围的内容 ，全部被裁切掉
        // 在用 storyboard 的时候，默认是true  但是 使用 代码开发 默认是 false
        clipsToBounds = true
        
        // 1. 添加 9 个图像的视图
        // 每张视图的bounds
        let rect = CGRect(origin: CGPointZero, size: CZStatusCellLayout.pictureSize)
        // 移动步长
        let step = CZStatusCellLayout.pictureSize.width + CZStatusCellLayout.picturesMargin
        
        for i in 0..<9 {
            let iv = UIImageView()
            iv.contentMode = .ScaleAspectFill
            iv.clipsToBounds = true
            
            // 设置视图的位置
            // 1> 根据 i 计算每张图片所在的行和列
            let row = CGFloat( i / Int(CZStatusCellLayout.picturesPerRow))
            
            let col = CGFloat( i % Int(CZStatusCellLayout.picturesPerRow)) // 列
            
            // 2> 设置位置
            iv.frame = CGRectOffset(rect, col * step, row * step)
            
            addSubview(iv)
        }
    }
}
